
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="zh_Hans">
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Django 1.1.2 release notes &#8212; Django 3.2.6.dev 文档</title>
    <link rel="stylesheet" href="../_static/default.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/underscore.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <script type="text/javascript" src="../_static/language_data.js"></script>
    <link rel="index" title="索引" href="../genindex.html" />
    <link rel="search" title="搜索" href="../search.html" />
    <link rel="next" title="Django 1.1 release notes" href="1.1.html" />
    <link rel="prev" title="Django 1.1.3 release notes" href="1.1.3.html" />



 
<script src="../templatebuiltins.js"></script>
<script>
(function($) {
    if (!django_template_builtins) {
       // templatebuiltins.js missing, do nothing.
       return;
    }
    $(document).ready(function() {
        // Hyperlink Django template tags and filters
        var base = "../ref/templates/builtins.html";
        if (base == "#") {
            // Special case for builtins.html itself
            base = "";
        }
        // Tags are keywords, class '.k'
        $("div.highlight\\-html\\+django span.k").each(function(i, elem) {
             var tagname = $(elem).text();
             if ($.inArray(tagname, django_template_builtins.ttags) != -1) {
                 var fragment = tagname.replace(/_/, '-');
                 $(elem).html("<a href='" + base + "#" + fragment + "'>" + tagname + "</a>");
             }
        });
        // Filters are functions, class '.nf'
        $("div.highlight\\-html\\+django span.nf").each(function(i, elem) {
             var filtername = $(elem).text();
             if ($.inArray(filtername, django_template_builtins.tfilters) != -1) {
                 var fragment = filtername.replace(/_/, '-');
                 $(elem).html("<a href='" + base + "#" + fragment + "'>" + filtername + "</a>");
             }
        });
    });
})(jQuery);</script>

  </head><body>

    <div class="document">
  <div id="custom-doc" class="yui-t6">
    <div id="hd">
      <h1><a href="../index.html">Django 3.2.6.dev 文档</a></h1>
      <div id="global-nav">
        <a title="Home page" href="../index.html">Home</a>  |
        <a title="Table of contents" href="../contents.html">Table of contents</a>  |
        <a title="Global index" href="../genindex.html">Index</a>  |
        <a title="Module index" href="../py-modindex.html">Modules</a>
      </div>
      <div class="nav">
    &laquo; <a href="1.1.3.html" title="Django 1.1.3 release notes">previous</a>
     |
    <a href="index.html" title="Release notes" accesskey="U">up</a>
   |
    <a href="1.1.html" title="Django 1.1 release notes">next</a> &raquo;</div>
    </div>

    <div id="bd">
      <div id="yui-main">
        <div class="yui-b">
          <div class="yui-g" id="releases-1.1.2">
            
  <div class="section" id="s-django-1-1-2-release-notes">
<span id="django-1-1-2-release-notes"></span><h1>Django 1.1.2 release notes<a class="headerlink" href="#django-1-1-2-release-notes" title="永久链接至标题">¶</a></h1>
<p>Welcome to Django 1.1.2!</p>
<p>This is the second &quot;bugfix&quot; release in the Django 1.1 series,
improving the stability and performance of the Django 1.1 codebase.</p>
<p>Django 1.1.2 maintains backwards compatibility with Django
1.1.0, but contain a number of fixes and other
improvements. Django 1.1.2 is a recommended upgrade for any
development or deployment currently using or targeting Django 1.1.</p>
<p>For full details on the new features, backwards incompatibilities, and
deprecated features in the 1.1 branch, see the <a class="reference internal" href="1.1.html"><span class="doc">Django 1.1 release notes</span></a>.</p>
<div class="section" id="s-backwards-incompatible-changes-in-1-1-2">
<span id="backwards-incompatible-changes-in-1-1-2"></span><h2>Backwards-incompatible changes in 1.1.2<a class="headerlink" href="#backwards-incompatible-changes-in-1-1-2" title="永久链接至标题">¶</a></h2>
<div class="section" id="s-test-runner-exit-status-code">
<span id="test-runner-exit-status-code"></span><h3>Test runner exit status code<a class="headerlink" href="#test-runner-exit-status-code" title="永久链接至标题">¶</a></h3>
<p>The exit status code of the test runners (<code class="docutils literal notranslate"><span class="pre">tests/runtests.py</span></code> and <code class="docutils literal notranslate"><span class="pre">python</span>
<span class="pre">manage.py</span> <span class="pre">test</span></code>) no longer represents the number of failed tests, since a
failure of 256 or more tests resulted in a wrong exit status code.  The exit
status code for the test runner is now 0 for success (no failing tests) and 1
for any number of test failures.  If needed, the number of test failures can be
found at the end of the test runner's output.</p>
</div>
<div class="section" id="s-cookie-encoding">
<span id="cookie-encoding"></span><h3>Cookie encoding<a class="headerlink" href="#cookie-encoding" title="永久链接至标题">¶</a></h3>
<p>To fix bugs with cookies in Internet Explorer, Safari, and possibly other
browsers, our encoding of cookie values was changed so that the characters
comma and semi-colon are treated as non-safe characters, and are therefore
encoded as <code class="docutils literal notranslate"><span class="pre">\054</span></code> and <code class="docutils literal notranslate"><span class="pre">\073</span></code> respectively.  This could produce backwards
incompatibilities, especially if you are storing comma or semi-colon in
cookies and have JavaScript code that parses and manipulates cookie values
client-side.</p>
</div>
</div>
<div class="section" id="s-one-new-feature">
<span id="one-new-feature"></span><h2>One new feature<a class="headerlink" href="#one-new-feature" title="永久链接至标题">¶</a></h2>
<p>Ordinarily, a point release would not include new features, but in the
case of Django 1.1.2, we have made an exception to this rule. Django
1.2 (the next major release of Django) will contain a feature that
will improve protection against Cross-Site Request Forgery (CSRF)
attacks. This feature requires the use of a new <a class="reference internal" href="../ref/templates/builtins.html#std:templatetag-csrf_token"><code class="xref std std-ttag docutils literal notranslate"><span class="pre">csrf_token</span></code></a>
template tag in all forms that Django renders.</p>
<p>To make it easier to support both 1.1.X and 1.2.X versions of Django with
the same templates, we have decided to introduce the <a class="reference internal" href="../ref/templates/builtins.html#std:templatetag-csrf_token"><code class="xref std std-ttag docutils literal notranslate"><span class="pre">csrf_token</span></code></a> template
tag to the 1.1.X branch. In the 1.1.X branch, <a class="reference internal" href="../ref/templates/builtins.html#std:templatetag-csrf_token"><code class="xref std std-ttag docutils literal notranslate"><span class="pre">csrf_token</span></code></a> does nothing -
it has no effect on templates or form processing. However, it means that the
same template will work with Django 1.2.</p>
</div>
</div>


          </div>
        </div>
      </div>
      
        
          <div class="yui-b" id="sidebar">
            
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
  <h3><a href="../contents.html">Table of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Django 1.1.2 release notes</a><ul>
<li><a class="reference internal" href="#backwards-incompatible-changes-in-1-1-2">Backwards-incompatible changes in 1.1.2</a><ul>
<li><a class="reference internal" href="#test-runner-exit-status-code">Test runner exit status code</a></li>
<li><a class="reference internal" href="#cookie-encoding">Cookie encoding</a></li>
</ul>
</li>
<li><a class="reference internal" href="#one-new-feature">One new feature</a></li>
</ul>
</li>
</ul>

  <h4>上一个主题</h4>
  <p class="topless"><a href="1.1.3.html"
                        title="上一章">Django 1.1.3 release notes</a></p>
  <h4>下一个主题</h4>
  <p class="topless"><a href="1.1.html"
                        title="下一章">Django 1.1 release notes</a></p>
  <div role="note" aria-label="source link">
    <h3>本页</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/releases/1.1.2.txt"
            rel="nofollow">显示源代码</a></li>
    </ul>
   </div>
<div id="searchbox" style="display: none" role="search">
  <h3>快速搜索</h3>
    <div class="searchformwrapper">
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" />
      <input type="submit" value="转向" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    </div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
              <h3>Last update:</h3>
              <p class="topless">7月 23, 2021</p>
          </div>
        
      
    </div>

    <div id="ft">
      <div class="nav">
    &laquo; <a href="1.1.3.html" title="Django 1.1.3 release notes">previous</a>
     |
    <a href="index.html" title="Release notes" accesskey="U">up</a>
   |
    <a href="1.1.html" title="Django 1.1 release notes">next</a> &raquo;</div>
    </div>
  </div>

      <div class="clearer"></div>
    </div>
  </body>
</html>